home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Nibble Magazine
/
nib12.dsk
/
RADIOACTIVE DECAY.bas
< prev
next >
Wrap
BASIC Source File
|
2023-02-26
|
2KB
|
72 lines
1 REM ***********************
2 REM * RADIOACTIVE DECAY *
3 REM * BY DICK CORNELIUS *
4 REM * AND MELVIN ZANDER *
5 REM * COPYRIGHT (C) 1983 *
6 REM * BY MICROSPARC, INC. *
7 REM * LINCOLN, MA. 01773 *
8 REM ***********************
150 REM INITIALIZATION
160 HGR : SCALE= 1: ROT= 1:
170 FOR SPOT = 960 TO 970: READ CODE: POKE SPOT,CODE: NEXT
180 DATA 1,0,4,0,45,53,63,55,45,45,0
190 POKE 233,3: POKE 232,192
200 HOME
210 SPEAKER = 49200
220 CC = 234
230 KB = -16384:KS = -16368
240 ESC$ = CHR$(27)
250 TXT$ = "SIMULATION OF RADIOACTIVE DECAY SHOWING SAMPLE PLOT AS A FUNCTION OF TIME PRESS THE SPACE BAR TO INTERRUPT PLOT."
260 REM SET UP SCREEN
270 HCOLOR= 3
280 FOR X = 208 TO 262: HPLOT X,2 TO X,64: NEXT
290 HCOLOR= 2
300 FOR X = 215 TO 255: HPLOT X,9 TO X,56: NEXT
310 HCOLOR= 0
320 HPLOT 214,8 TO 256,8 TO 256,56 TO 214,56 TO 214,8
330 HCOLOR= 2
340 HPLOT 0,0 TO 0,159
350 HPLOT 0,0 TO 279,0
360 HPLOT 0,159 TO 279,159
370 FOR X = 2 TO 279 STEP 20
380 FOR Y = 158 TO 0 STEP -20
390 HPLOT X,Y: NEXT : NEXT
400 VTAB 21: PRINT TXT$;
410 REM REACT
420 POKE KS,0
430 TIME = TIME +1/4
440 IF PEEK(KB) >127 THEN GOSUB 680
450 X = INT( RND(1) *10) *4 +216
460 Y = INT( RND(1) *16) *3 +9
470 IF RND(1) >0.5 THEN FOR PAUSE = 1 TO 10: NEXT : GOTO 430
480 HCOLOR= BLACK: DRAW 1 AT X,Y
490 IF PEEK(CC) = 12 THEN FOR PAUSE = 1 TO 10:SOUND = PEEK(NULL): NEXT : GOTO 510
500 FOR I = 1 TO 10:SOUND = PEEK(SPEAKER): NEXT
510 HCOLOR= 3
520 IF TIME >278 THEN 570
530 HPLOT OX,OY TO TIME,YY TO TIME +1,YY
540 IF PEEK(CC) = 6 THEN YY = YY +1
550 OX = TIME:OY = YY
560 GOTO 430
570 REM START AGAIN?
580 HOME
590 POKE KS,0
600 VTAB 22: PRINT "PRESS THE SPACE BAR TO PLOT AGAIN."
610 PRINT "TYPE 'C' TO CLEAR AND RUN AGAIN.";
620 IF PEEK(KB) <128 THEN 620
630 GET G$
640 IF G$ = " " THEN RUN 200
650 IF G$ = "C" THEN RUN
660 IF G$ = ESC$ THEN HOME : TEXT : HOME : END
670 GOTO 620
680 REM INTERRUPT PLOT
690 GET G$
700 IF G$ = ESC$ THEN GOTO 660
710 HOME : VTAB 22
720 PRINT "PRESS THE SPACE BAR TO CONTINUE."
730 IF G$ < >" " THEN RETURN
740 IF PEEK(KB) <128 THEN 740
750 GET G$
760 IF G$ < >" " THEN 740
770 VTAB 21: PRINT TXT$;
780 RETURN